import Vue from 'vue'
import Vuex from 'vuex'
import axios from "axios" 

Vue.use(Vuex)

const store = new Vuex.Store({
  state: {
    num:200,
    list:[]
  },
  getters: {
  },
  // 多人完成项目时 不要修改同一个文件
  // 同步修改 
  mutations: {
    // eq mutations this.$store.commit("函数名称")
    SET_LIST(state,{list}) {
      state.list = list
    },
    ADD_NUM(state) {
      state.num += 1
    },
    // 其他人的代码
    DEL_NUM(state) {
      state.num -= 1
    }
  },
  // 发起异步请求 只发布异步任务
  actions: { 
    //在actions中的函数 第一个默认参数是context(上下文)
    init ( context) {
      
      axios.get("/getList").then(res => {
        // 只要是是同步的修改 vuex中的state数据 就必须使用 mutations 中的方法
      
        this.state.list = res.data.list
        // 传参
        // this.$store.commit("init")
        console.log(context);
        context.commit("SET_LIST", {
          list:res.data.list
        })
      })
    }
    
  },
  // 多人合作 大型项目(页面超过2,30个) 用modules 
  modules: {

  }
})
export default store
